#include <iostream>
#include <unistd.h>
#include <pthread.h>

// 子
void *new_thread(void *args)
{
    std::cout << "new thread running..." << std ::endl;
    pthread_t tid = pthread_self();
    std::cout << "new thread: " << tid << std::endl;
    return (void *)nullptr;
}

int main()
{
    pthread_t tid;
    pthread_create(&tid, nullptr, new_thread, (void*)"new thread");
    pthread_join(tid, nullptr);
    // // 主
    // sleep(1);
    // std::cout << "host thread running..." << std ::endl;

    // void *code = nullptr;
    // // 已经开辟了空间，不会报错：访问非法地址
    // // 原因是：join函数，传入的是&code，存储的是code的地址，在底层只需要将返回值直接存入void**类型的参数中即可。
    // pthread_join(th, &code);

    // std::cout << "code: " << (uint64_t)code << std::endl;

    std::cout << "main: " << tid << std::endl;
    sleep(100);
    return 0;
}